<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>[Generic Component Framework v3] GCF::Log Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<!--link href="tabs.css" rel="stylesheet" type="text/css"-->
</head><body>
 <div id="wrapper">
    <div id="logo_box">
        <a class="img_link" href="https://github.com/pnudupa/gcf" target="_blank" ><img style="float:left;margin-left:10px;margin-top:5px;margin-bottom:5px;"src="header_gcf_logo.jpg" alt="GCF LOGO"/></a>
        <a class="img_link" href="https://www.vcreatelogic.com/" target="_blank" ><img style="float:right;margin-right:10px; margin-top: 30px;" src="header_vcl_logo.jpg" alt="VCL LOGO"/></a>
        <div style="clear:both"></div>
    </div>
    <div class="nav">
        <ul>
            <li class="selectedpage">
                <a class="a-home" href="index.html" >
                    <span>Home</span>
                </a>
            </li>
            <li>
                <a class="a-classes " href="classes.html">
                    <span>All Classes</span>
                </a>
            </li>
            <li>
                <a class="a-home " href="gcf_modules.html">
                    <span>Modules</span>
                </a>
            </li>
            <li>
                <a class="a-home " href="gcf_guides_and_videos.html">
                    <span>Guides & Videos</span>
                </a>
            </li>
            <li>
                <a class="a-home " href="gcf_tools_and_inbuilt_components.html">
                    <span>Tools & Components</span>
                </a>
            </li>
        </ul>
    </div>
    <div id="main-content">
        <div class="inside">
        <div>
<!-- Generated by Doxygen 1.8.16 -->
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><b>GCF</b></li><li class="navelem"><a class="el" href="class_g_c_f_1_1_log.html">Log</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="class_g_c_f_1_1_log-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">GCF::Log Class Reference<div class="ingroups"><a class="el" href="group__gcf__core.html">GCF Core Module</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>This class offers means to log a hierarchy of messages and process them.  
 <a href="class_g_c_f_1_1_log.html#details">More...</a></p>

<p><code>#include &lt;GCF3/Log&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a874f08993301a2d83f28fc4a5c49850e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#a874f08993301a2d83f28fc4a5c49850e">setHandler</a> (<a class="el" href="class_g_c_f_1_1_log_message_handler_interface.html">GCF::LogMessageHandlerInterface</a> *<a class="el" href="class_g_c_f_1_1_log.html#acd4adc9aa8f3ee8698f60b1ba3f65f5f">handler</a>)</td></tr>
<tr class="separator:a874f08993301a2d83f28fc4a5c49850e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd4adc9aa8f3ee8698f60b1ba3f65f5f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_g_c_f_1_1_log_message_handler_interface.html">GCF::LogMessageHandlerInterface</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#acd4adc9aa8f3ee8698f60b1ba3f65f5f">handler</a> () const</td></tr>
<tr class="separator:acd4adc9aa8f3ee8698f60b1ba3f65f5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9274757c35f3a610978a89f7ea23bbc3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#a9274757c35f3a610978a89f7ea23bbc3">setLogFileName</a> (const QString &amp;<a class="el" href="class_g_c_f_1_1_log.html#a156d9bf6d4784ff4cb785f8d207e331a">logFileName</a>)</td></tr>
<tr class="separator:a9274757c35f3a610978a89f7ea23bbc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a156d9bf6d4784ff4cb785f8d207e331a"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#a156d9bf6d4784ff4cb785f8d207e331a">logFileName</a> () const</td></tr>
<tr class="separator:a156d9bf6d4784ff4cb785f8d207e331a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b7267e0dccdfafe62d65358ad34d166"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#a0b7267e0dccdfafe62d65358ad34d166">setLogQtMessages</a> (bool val)</td></tr>
<tr class="separator:a0b7267e0dccdfafe62d65358ad34d166"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15c660a56ffb42d4af205ef4c4c1c2d5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#a15c660a56ffb42d4af205ef4c4c1c2d5">isLogQtMessages</a> () const</td></tr>
<tr class="separator:a15c660a56ffb42d4af205ef4c4c1c2d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25050704c840e94355f1536f34842ac9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#a25050704c840e94355f1536f34842ac9">fatal</a> (const QString &amp;context, const QString &amp;message, const QString &amp;details=QString())</td></tr>
<tr class="separator:a25050704c840e94355f1536f34842ac9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa28b6422a8ff91f94aa2545e2291fb0b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#aa28b6422a8ff91f94aa2545e2291fb0b">fatal</a> (const QString &amp;context, const QByteArray &amp;errorCode, const QString &amp;message, const QString &amp;details)</td></tr>
<tr class="separator:aa28b6422a8ff91f94aa2545e2291fb0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0e4c2f870f2b524c16bb0e9a2509627"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#ac0e4c2f870f2b524c16bb0e9a2509627">error</a> (const QString &amp;context, const QString &amp;message, const QString &amp;details=QString())</td></tr>
<tr class="separator:ac0e4c2f870f2b524c16bb0e9a2509627"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad313360b40f05c4c39230f8f1edcb019"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#ad313360b40f05c4c39230f8f1edcb019">error</a> (const QString &amp;context, const QByteArray &amp;errorCode, const QString &amp;message, const QString &amp;details)</td></tr>
<tr class="separator:ad313360b40f05c4c39230f8f1edcb019"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0683f2db44afbd398a245b75b0bc212a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#a0683f2db44afbd398a245b75b0bc212a">warning</a> (const QString &amp;context, const QString &amp;message, const QString &amp;details=QString())</td></tr>
<tr class="separator:a0683f2db44afbd398a245b75b0bc212a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a560e6ed66c1ecc99d871c0222d60d8a2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#a560e6ed66c1ecc99d871c0222d60d8a2">warning</a> (const QString &amp;context, const QByteArray &amp;errorCode, const QString &amp;message, const QString &amp;details)</td></tr>
<tr class="separator:a560e6ed66c1ecc99d871c0222d60d8a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20785dad755436ec535ecaf7fc4c385f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#a20785dad755436ec535ecaf7fc4c385f">debug</a> (const QString &amp;context, const QString &amp;message, const QString &amp;details=QString())</td></tr>
<tr class="separator:a20785dad755436ec535ecaf7fc4c385f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a990d08ad4b28bd6c07ca8eb79e04ec63"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#a990d08ad4b28bd6c07ca8eb79e04ec63">debug</a> (const QString &amp;context, const QByteArray &amp;errorCode, const QString &amp;message, const QString &amp;details)</td></tr>
<tr class="separator:a990d08ad4b28bd6c07ca8eb79e04ec63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee583f05fd246b458d518700612c6696"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#aee583f05fd246b458d518700612c6696">info</a> (const QString &amp;context, const QString &amp;message, const QString &amp;details=QString())</td></tr>
<tr class="separator:aee583f05fd246b458d518700612c6696"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae74d043cdc98ac4254a264dfb38e95ce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#ae74d043cdc98ac4254a264dfb38e95ce">info</a> (const QString &amp;context, const QByteArray &amp;errorCode, const QString &amp;message, const QString &amp;details)</td></tr>
<tr class="separator:ae74d043cdc98ac4254a264dfb38e95ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44f1e5e820196ab1f76eb7a8e6aa8bb0"><td class="memItemLeft" align="right" valign="top">QList&lt; <a class="el" href="class_g_c_f_1_1_log_message.html">GCF::LogMessage</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#a44f1e5e820196ab1f76eb7a8e6aa8bb0">logMessages</a> () const</td></tr>
<tr class="separator:a44f1e5e820196ab1f76eb7a8e6aa8bb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d7943665d28f959dd313f020cb0d424"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#a1d7943665d28f959dd313f020cb0d424">toString</a> () const</td></tr>
<tr class="separator:a1d7943665d28f959dd313f020cb0d424"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c69d362fb719727e2c5c6034caeb442"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#a0c69d362fb719727e2c5c6034caeb442">copyToClipboard</a> ()</td></tr>
<tr class="separator:a0c69d362fb719727e2c5c6034caeb442"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98f3b5af158d86d5d344036f7b0b1419"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#a98f3b5af158d86d5d344036f7b0b1419">copyToSupport</a> ()</td></tr>
<tr class="separator:a98f3b5af158d86d5d344036f7b0b1419"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77c31c23e903ee4dd89eac3fa239f0c8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#a77c31c23e903ee4dd89eac3fa239f0c8">handleLogMessage</a> (<a class="el" href="class_g_c_f_1_1_log_message.html">GCF::LogMessage</a> *msg)</td></tr>
<tr class="separator:a77c31c23e903ee4dd89eac3fa239f0c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3dc939a33f037d3c19765033d7f48670"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#a3dc939a33f037d3c19765033d7f48670">print</a> (<a class="el" href="class_g_c_f_1_1_log_message.html">GCF::LogMessage</a> *msg, QTextStream &amp;ts)</td></tr>
<tr class="separator:a3dc939a33f037d3c19765033d7f48670"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_g_c_f_1_1_log_message_handler_interface"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_g_c_f_1_1_log_message_handler_interface')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_g_c_f_1_1_log_message_handler_interface.html">GCF::LogMessageHandlerInterface</a></td></tr>
<tr class="memitem:a08649910925fda561e106c974fa02787 inherit pub_methods_class_g_c_f_1_1_log_message_handler_interface"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log_message_handler_interface.html#a08649910925fda561e106c974fa02787">toSupport</a> (const QString &amp;msg)</td></tr>
<tr class="separator:a08649910925fda561e106c974fa02787 inherit pub_methods_class_g_c_f_1_1_log_message_handler_interface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecab4149153893b3a5f75042862f07c0 inherit pub_methods_class_g_c_f_1_1_log_message_handler_interface"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log_message_handler_interface.html#aecab4149153893b3a5f75042862f07c0">toClipboard</a> (const QString &amp;msg)</td></tr>
<tr class="separator:aecab4149153893b3a5f75042862f07c0 inherit pub_methods_class_g_c_f_1_1_log_message_handler_interface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba222654e8c8840a4786744770e5d295 inherit pub_methods_class_g_c_f_1_1_log_message_handler_interface"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log_message_handler_interface.html#aba222654e8c8840a4786744770e5d295">flush</a> ()</td></tr>
<tr class="separator:aba222654e8c8840a4786744770e5d295 inherit pub_methods_class_g_c_f_1_1_log_message_handler_interface"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:adee50c8c03ae2af0037f50020b5ddb3f"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_g_c_f_1_1_log.html">Log</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_log.html#adee50c8c03ae2af0037f50020b5ddb3f">instance</a> ()</td></tr>
<tr class="separator:adee50c8c03ae2af0037f50020b5ddb3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>This is the only singleton class in all of GCF3. Through this single instance, users can log warning, debug, error and info messages. Although actual logging takes place via <a class="el" href="class_g_c_f_1_1_log_message_handler_interface.html">GCF::LogMessageHandlerInterface</a>, set using <a class="el" href="class_g_c_f_1_1_log.html#a874f08993301a2d83f28fc4a5c49850e">setHandler()</a> method; this class offers a simple API for feeding log messages and passing the buck to the handler when appropriate. By default an internal log-handler is registered as handler with <a class="el" href="class_g_c_f_1_1_log.html">GCF::Log</a>; which dumps all log messages to a log file. You can enable logging of <code>qDebug()</code>, <code>qWarning()</code>, <code>qFatal()</code> and <code>qCritical()</code> messages by calling <a class="el" href="class_g_c_f_1_1_log.html#a0b7267e0dccdfafe62d65358ad34d166">setLogQtMessages()</a> method. Logging can be done from multiple threads as well. Forwarded calls to <a class="el" href="class_g_c_f_1_1_log_message_handler_interface.html">GCF::LogMessageHandlerInterface</a> are serialized.</p>
<p>Usage: </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> <span class="keyword">function</span>()</div>
<div class="line">{</div>
<div class="line">    <a class="code" href="class_g_c_f_1_1_log.html#adee50c8c03ae2af0037f50020b5ddb3f">GCF::Log::instance</a>()-&gt;<a class="code" href="class_g_c_f_1_1_log.html#aee583f05fd246b458d518700612c6696">info</a>(GCF_DEFAULT_LOG_CONTEXT, <span class="stringliteral">&quot;Simple log message&quot;</span>);</div>
<div class="line">}</div>
</div><!-- fragment --><p>The <code>GCF_DEFAULT_LOG_CONTEXT</code> constructs a default-context string based on the current function and line-number. Contexts help in figuring out where the log message has originated. You can use <code>GCF_DEFAULT_LOG_CONTEXT</code> or any other context string of your choice.</p>
<p>Each message dumped via <a class="el" href="class_g_c_f_1_1_log.html#aee583f05fd246b458d518700612c6696">info()</a>, <a class="el" href="class_g_c_f_1_1_log.html#a20785dad755436ec535ecaf7fc4c385f">debug()</a>, <a class="el" href="class_g_c_f_1_1_log.html#a0683f2db44afbd398a245b75b0bc212a">warning()</a>, <a class="el" href="class_g_c_f_1_1_log.html#ac0e4c2f870f2b524c16bb0e9a2509627">error()</a>, and <a class="el" href="class_g_c_f_1_1_log.html#a25050704c840e94355f1536f34842ac9">fatal()</a> is stored as a <a class="el" href="class_g_c_f_1_1_log_message.html">GCF::LogMessage</a> until the <a class="el" href="class_g_c_f_1_1_log.html#acd4adc9aa8f3ee8698f60b1ba3f65f5f">handler()</a> handles the message. After the message is handled, it gets deleted.</p>
<p>Logs can be hierarchical. You can create a log-hierarchy by creating instances of the <a class="el" href="class_g_c_f_1_1_log_message_branch.html">GCF::LogMessageBranch</a> class. Branches are internally treated as log messages. Example:</p>
<div class="fragment"><div class="line"><span class="keywordtype">void</span> anotherFunction();</div>
<div class="line"><span class="keywordtype">void</span> yetAnotherFunction();</div>
<div class="line"> </div>
<div class="line"><span class="keywordtype">void</span> <span class="keyword">function</span>()</div>
<div class="line">{</div>
<div class="line">    <a class="code" href="class_g_c_f_1_1_log_message_branch.html">GCF::LogMessageBranch</a> branch(<span class="stringliteral">&quot;function() branch&quot;</span>);</div>
<div class="line">    ::anotherFunction();</div>
<div class="line">    ::yetAnotherFunction();</div>
<div class="line">}</div>
<div class="line"> </div>
<div class="line"><span class="keywordtype">void</span> anotherFunction()</div>
<div class="line">{</div>
<div class="line">    <a class="code" href="class_g_c_f_1_1_log.html#adee50c8c03ae2af0037f50020b5ddb3f">GCF::Log::instance</a>()-&gt;<a class="code" href="class_g_c_f_1_1_log.html#aee583f05fd246b458d518700612c6696">info</a>(GCF_DEFAULT_LOG_CONTEXT, <span class="stringliteral">&quot;Simple log message&quot;</span>);</div>
<div class="line">}</div>
<div class="line"> </div>
<div class="line"><span class="keywordtype">void</span> yetAnotherFunction()</div>
<div class="line">{</div>
<div class="line">    <a class="code" href="class_g_c_f_1_1_log.html#adee50c8c03ae2af0037f50020b5ddb3f">GCF::Log::instance</a>()-&gt;<a class="code" href="class_g_c_f_1_1_log.html#aee583f05fd246b458d518700612c6696">info</a>(GCF_DEFAULT_LOG_CONTEXT, <span class="stringliteral">&quot;Simple log message&quot;</span>);</div>
<div class="line">}</div>
</div><!-- fragment --><p>In the above example, log messages from <code>anotherFunction()</code> and <code>yetAnotherFunction()</code> are dumped into the log branch created within <code>function()</code>. When the log messages are dumped on to a log-file (or shown in a dialog box); the hierarchy is captured using indentation (or tree-view).</p>
<p>Hierarchichal logs are useful to understand the context in which a log message arose. For example, it might be useful to know whether the log message generated by <code>yetAnotherFunction()</code> happened in the context of a <code>function()</code> call or a direct call.</p>
<dl class="section note"><dt>Note</dt><dd>Branches that have no log messages are automatically deleted. </dd>
<dd>
Branches or messages, once dumped into the log file are automatically deleted. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_g_c_f_1_1_log_message.html" title="Represents a single message in the log.">GCF::LogMessage</a> </dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="adee50c8c03ae2af0037f50020b5ddb3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adee50c8c03ae2af0037f50020b5ddb3f">&#9670;&nbsp;</a></span>instance()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_g_c_f_1_1_log.html">GCF::Log</a> * GCF::Log::instance </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>pointer to the only instance of this class in the application </dd></dl>

</div>
</div>
<a id="a874f08993301a2d83f28fc4a5c49850e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a874f08993301a2d83f28fc4a5c49850e">&#9670;&nbsp;</a></span>setHandler()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::Log::setHandler </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_g_c_f_1_1_log_message_handler_interface.html">GCF::LogMessageHandlerInterface</a> *&#160;</td>
          <td class="paramname"><em>handler</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Sets the handler to which all log messages are forwarded.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">handler</td><td>pointer to the handler. If null, the default internal handler is used. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="acd4adc9aa8f3ee8698f60b1ba3f65f5f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd4adc9aa8f3ee8698f60b1ba3f65f5f">&#9670;&nbsp;</a></span>handler()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_g_c_f_1_1_log_message_handler_interface.html">GCF::LogMessageHandlerInterface</a> * GCF::Log::handler </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>pointer to the handler used by the log </dd></dl>

</div>
</div>
<a id="a9274757c35f3a610978a89f7ea23bbc3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9274757c35f3a610978a89f7ea23bbc3">&#9670;&nbsp;</a></span>setLogFileName()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::Log::setLogFileName </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>logFile</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Sets the file-name into which all logs are dumped by the default handler.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">logFile</td><td>name of the file into which log messages are dumped by the default handler </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a156d9bf6d4784ff4cb785f8d207e331a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a156d9bf6d4784ff4cb785f8d207e331a">&#9670;&nbsp;</a></span>logFileName()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QString GCF::Log::logFileName </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>complete path to the file into which log messages are dumped by the default handler. </dd></dl>

</div>
</div>
<a id="a0b7267e0dccdfafe62d65358ad34d166"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b7267e0dccdfafe62d65358ad34d166">&#9670;&nbsp;</a></span>setLogQtMessages()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::Log::setLogQtMessages </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function can be used to enable/disable logging of <code>qDebug()</code>, <code>qWarning()</code>, <code>qFatal()</code> and <code>qCritical()</code> messages to the log. By default logging of <code>QtDebug</code> messages is disabled.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">val</td><td>true if QtDebug messages need to be logged, false otherwise. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a15c660a56ffb42d4af205ef4c4c1c2d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15c660a56ffb42d4af205ef4c4c1c2d5">&#9670;&nbsp;</a></span>isLogQtMessages()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool GCF::Log::isLogQtMessages </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>true if <code>QtDebug</code> messages are logged. False otherwise. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_g_c_f_1_1_log.html#a0b7267e0dccdfafe62d65358ad34d166">setLogQtMessages()</a> </dd></dl>

</div>
</div>
<a id="a25050704c840e94355f1536f34842ac9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a25050704c840e94355f1536f34842ac9">&#9670;&nbsp;</a></span>fatal() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::Log::fatal </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>details</em> = <code>QString()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Logs a fatal message into the current branch</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">context</td><td>a string representing the context of the message. Use of <code>GCF_DEFAULT_LOG_CONTEXT</code> for this parameter is recommended </td></tr>
    <tr><td class="paramname">message</td><td>a brief one liner associated with this message </td></tr>
    <tr><td class="paramname">details</td><td>a detailed multi-line text associated with this message </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aa28b6422a8ff91f94aa2545e2291fb0b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa28b6422a8ff91f94aa2545e2291fb0b">&#9670;&nbsp;</a></span>fatal() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::Log::fatal </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QByteArray &amp;&#160;</td>
          <td class="paramname"><em>errorCode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>details</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Logs a fatal message into the current branch</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">context</td><td>a string representing the context of the message. Use of <code>GCF_DEFAULT_LOG_CONTEXT</code> for this parameter is recommended </td></tr>
    <tr><td class="paramname">errorCode</td><td>a code associated with this message </td></tr>
    <tr><td class="paramname">message</td><td>a brief one liner associated with this message </td></tr>
    <tr><td class="paramname">details</td><td>a detailed multi-line text associated with this message </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ac0e4c2f870f2b524c16bb0e9a2509627"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0e4c2f870f2b524c16bb0e9a2509627">&#9670;&nbsp;</a></span>error() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::Log::error </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>details</em> = <code>QString()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Logs a error message into the current branch</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">context</td><td>a string representing the context of the message. Use of <code>GCF_DEFAULT_LOG_CONTEXT</code> for this parameter is recommended </td></tr>
    <tr><td class="paramname">message</td><td>a brief one liner associated with this message </td></tr>
    <tr><td class="paramname">details</td><td>a detailed multi-line text associated with this message </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ad313360b40f05c4c39230f8f1edcb019"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad313360b40f05c4c39230f8f1edcb019">&#9670;&nbsp;</a></span>error() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::Log::error </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QByteArray &amp;&#160;</td>
          <td class="paramname"><em>errorCode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>details</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Logs a error message into the current branch</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">context</td><td>a string representing the context of the message. Use of <code>GCF_DEFAULT_LOG_CONTEXT</code> for this parameter is recommended </td></tr>
    <tr><td class="paramname">errorCode</td><td>a code associated with this message </td></tr>
    <tr><td class="paramname">message</td><td>a brief one liner associated with this message </td></tr>
    <tr><td class="paramname">details</td><td>a detailed multi-line text associated with this message </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a0683f2db44afbd398a245b75b0bc212a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0683f2db44afbd398a245b75b0bc212a">&#9670;&nbsp;</a></span>warning() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::Log::warning </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>details</em> = <code>QString()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Logs a warning message into the current branch</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">context</td><td>a string representing the context of the message. Use of <code>GCF_DEFAULT_LOG_CONTEXT</code> for this parameter is recommended </td></tr>
    <tr><td class="paramname">message</td><td>a brief one liner associated with this message </td></tr>
    <tr><td class="paramname">details</td><td>a detailed multi-line text associated with this message </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a560e6ed66c1ecc99d871c0222d60d8a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a560e6ed66c1ecc99d871c0222d60d8a2">&#9670;&nbsp;</a></span>warning() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::Log::warning </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QByteArray &amp;&#160;</td>
          <td class="paramname"><em>errorCode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>details</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Logs a warning message into the current branch</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">context</td><td>a string representing the context of the message. Use of <code>GCF_DEFAULT_LOG_CONTEXT</code> for this parameter is recommended </td></tr>
    <tr><td class="paramname">errorCode</td><td>a code associated with this message </td></tr>
    <tr><td class="paramname">message</td><td>a brief one liner associated with this message </td></tr>
    <tr><td class="paramname">details</td><td>a detailed multi-line text associated with this message </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a20785dad755436ec535ecaf7fc4c385f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20785dad755436ec535ecaf7fc4c385f">&#9670;&nbsp;</a></span>debug() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::Log::debug </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>details</em> = <code>QString()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Logs a debug message into the current branch</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">context</td><td>a string representing the context of the message. Use of <code>GCF_DEFAULT_LOG_CONTEXT</code> for this parameter is recommended </td></tr>
    <tr><td class="paramname">message</td><td>a brief one liner associated with this message </td></tr>
    <tr><td class="paramname">details</td><td>a detailed multi-line text associated with this message </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a990d08ad4b28bd6c07ca8eb79e04ec63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a990d08ad4b28bd6c07ca8eb79e04ec63">&#9670;&nbsp;</a></span>debug() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::Log::debug </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QByteArray &amp;&#160;</td>
          <td class="paramname"><em>errorCode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>details</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Logs a warning message into the current branch</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">context</td><td>a string representing the context of the message. Use of <code>GCF_DEFAULT_LOG_CONTEXT</code> for this parameter is recommended </td></tr>
    <tr><td class="paramname">errorCode</td><td>a code associated with this message </td></tr>
    <tr><td class="paramname">message</td><td>a brief one liner associated with this message </td></tr>
    <tr><td class="paramname">details</td><td>a detailed multi-line text associated with this message </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aee583f05fd246b458d518700612c6696"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee583f05fd246b458d518700612c6696">&#9670;&nbsp;</a></span>info() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::Log::info </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>details</em> = <code>QString()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Logs a information message into the current branch</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">context</td><td>a string representing the context of the message. Use of <code>GCF_DEFAULT_LOG_CONTEXT</code> for this parameter is recommended </td></tr>
    <tr><td class="paramname">message</td><td>a brief one liner associated with this message </td></tr>
    <tr><td class="paramname">details</td><td>a detailed multi-line text associated with this message </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ae74d043cdc98ac4254a264dfb38e95ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae74d043cdc98ac4254a264dfb38e95ce">&#9670;&nbsp;</a></span>info() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::Log::info </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QByteArray &amp;&#160;</td>
          <td class="paramname"><em>errorCode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>details</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Logs a information message into the current branch</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">context</td><td>a string representing the context of the message. Use of <code>GCF_DEFAULT_LOG_CONTEXT</code> for this parameter is recommended </td></tr>
    <tr><td class="paramname">errorCode</td><td>a code associated with this message </td></tr>
    <tr><td class="paramname">message</td><td>a brief one liner associated with this message </td></tr>
    <tr><td class="paramname">details</td><td>a detailed multi-line text associated with this message </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a44f1e5e820196ab1f76eb7a8e6aa8bb0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44f1e5e820196ab1f76eb7a8e6aa8bb0">&#9670;&nbsp;</a></span>logMessages()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QList&lt; <a class="el" href="class_g_c_f_1_1_log_message.html">GCF::LogMessage</a> * &gt; GCF::Log::logMessages </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>list of top-level log messages and branches. </dd></dl>

</div>
</div>
<a id="a1d7943665d28f959dd313f020cb0d424"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d7943665d28f959dd313f020cb0d424">&#9670;&nbsp;</a></span>toString()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QString GCF::Log::toString </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a string representation of the log </dd></dl>

</div>
</div>
<a id="a0c69d362fb719727e2c5c6034caeb442"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0c69d362fb719727e2c5c6034caeb442">&#9670;&nbsp;</a></span>copyToClipboard()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::Log::copyToClipboard </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Requests the handler to copy the string representation of this log to the clipboard.</p>
<dl class="section note"><dt>Note</dt><dd>Actual copy of log-messages to clipboard happens only if the handler supports it. </dd></dl>

</div>
</div>
<a id="a98f3b5af158d86d5d344036f7b0b1419"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a98f3b5af158d86d5d344036f7b0b1419">&#9670;&nbsp;</a></span>copyToSupport()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::Log::copyToSupport </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Requests the handler to submit the string representation of this log support (via email or otherwise).</p>
<dl class="section note"><dt>Note</dt><dd>Actual submit of log-messages to support happens only if the handler supports it. </dd></dl>

</div>
</div>
<a id="a77c31c23e903ee4dd89eac3fa239f0c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77c31c23e903ee4dd89eac3fa239f0c8">&#9670;&nbsp;</a></span>handleLogMessage()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::Log::handleLogMessage </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_g_c_f_1_1_log_message.html">GCF::LogMessage</a> *&#160;</td>
          <td class="paramname"><em>msg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="class_g_c_f_1_1_log.html">GCF::Log</a> would call this function of the handler with the reported message so that the handler can log it appropriately. </p>

<p>Implements <a class="el" href="class_g_c_f_1_1_log_message_handler_interface.html#a732f05e31e9d76e711089a0b0bd70f3a">GCF::LogMessageHandlerInterface</a>.</p>

</div>
</div>
<a id="a3dc939a33f037d3c19765033d7f48670"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3dc939a33f037d3c19765033d7f48670">&#9670;&nbsp;</a></span>print()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::Log::print </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_g_c_f_1_1_log_message.html">GCF::LogMessage</a> *&#160;</td>
          <td class="paramname"><em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">QTextStream &amp;&#160;</td>
          <td class="paramname"><em>ts</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="class_g_c_f_1_1_log.html">GCF::Log</a> would call this function of the handler with the reported message so that the handler can stream the log in appropriate print format to the text stream passed. </p>

<p>Implements <a class="el" href="class_g_c_f_1_1_log_message_handler_interface.html#aa8553b478a54555ced6cc948a8e65feb">GCF::LogMessageHandlerInterface</a>.</p>

</div>
</div>
</div><!-- contents -->
<div class="ttc" id="aclass_g_c_f_1_1_log_message_branch_html"><div class="ttname"><a href="class_g_c_f_1_1_log_message_branch.html">GCF::LogMessageBranch</a></div><div class="ttdoc">Creates a branch in the log-message hierarchy.</div><div class="ttdef"><b>Definition:</b> Log.h:199</div></div>
<div class="ttc" id="aclass_g_c_f_1_1_log_html_aee583f05fd246b458d518700612c6696"><div class="ttname"><a href="class_g_c_f_1_1_log.html#aee583f05fd246b458d518700612c6696">GCF::Log::info</a></div><div class="ttdeci">void info(const QString &amp;context, const QString &amp;message, const QString &amp;details=QString())</div><div class="ttdef"><b>Definition:</b> Log.h:107</div></div>
<div class="ttc" id="aclass_g_c_f_1_1_log_html_adee50c8c03ae2af0037f50020b5ddb3f"><div class="ttname"><a href="class_g_c_f_1_1_log.html#adee50c8c03ae2af0037f50020b5ddb3f">GCF::Log::instance</a></div><div class="ttdeci">static Log * instance()</div><div class="ttdef"><b>Definition:</b> Log.cpp:255</div></div>
</div>
</div>
</div>
<div class="footer_content">
<table width="100%" class="footer">
<tr>
<td align="left" width="50%">Copyright &copy; 2013-2019,
 <a class="el" href="http://www.vcreatelogic.com" target="_black">VCreate Logic Private Limited</a></td>
<td align="right" width="50%"><a class="el" href="http://www.vcreatelogic.com/products/gcf" target="_black">GCF - Generic Component Framework</a></td>
</tr>
</table>
</div>
</div>
</body>
</html>
